/* $Header: mem_diag.c,v 2.2 01/10/02 10:26:10 przybyls Exp $ */

/***********************************************************************/
/*                                                                     */
/*                  Copyright Hewlett-Packard Co. 1991                 */
/*                                                                     */
/***********************************************************************/

/***********************************************************************/
/* MODULE NAME:  mem_diag.c                                            */
/* ============                                                        */
/*                                                                     */
/* Author:  Lesley                                                     */
/*                                                                     */
/* MODULE PURPOSE:  To define the memory diagnostic functions.         */
/*                                                                     */
/*                                                                     */
/*                                                                     */
/***********************************************************************/


/*****************************/
/*   GLOBAL INCLUDE FILES    */
/*****************************/

#include <typedefs.h>
#include <error.h>
#include <diag.h>

/*****************************/
/*   LOCAL INCLUDE FILES     */
/*****************************/


/*****************************/
/*   GLOBAL VARIABLES        */
/*****************************/


/*****************************/
/*   EXTERNAL VARIABLES      */
/*****************************/


/*****************************/
/*   LOCAL DEFINES           */
/*****************************/


/*****************************/
/*   STATIC VARIABLES        */
/*****************************/


/*****************************/
/*   IMPLEMENT SECTION       */
/*****************************/

void PokeMemory( U_INT32 *pmem, DATA_SIZE size, INT32 value )
{

   switch( size )
   {
      case SIZE_8_BIT:
         *( U_INT8 *)pmem = value;
         break;
      case SIZE_16_BIT:
         *( U_INT16 *)pmem = value;
         break;
      case SIZE_32_BIT:
         *( U_INT32 *)pmem = value;
         break;
      case SIZE_8_BIT_SIGNED:
         *( INT8 *)pmem = value;
         break;
      case SIZE_16_BIT_SIGNED:
         *( INT16 *)pmem = value;
         break;
   }
}

INT32 PeekMemory( U_INT32 *pmem, DATA_SIZE size )
{
   switch( size )
   {
      case SIZE_8_BIT_SIGNED:  return( *( INT8 *)pmem );
      case SIZE_16_BIT_SIGNED: return( *( INT16 *)pmem );
      case SIZE_8_BIT:         return( *( U_INT8 *)pmem );
      case SIZE_16_BIT:        return( *( U_INT16 *)pmem );
      default:
      case SIZE_32_BIT:        return( *( U_INT32 *)pmem );
   }
}
